深入ReentrantLock实现原理,源码深度剖析! – mikechen的互联网架构 | 您所在的位置:网站首页 › reentrantlock condition原理 › 深入ReentrantLock实现原理,源码深度剖析! – mikechen的互联网架构 |
ReentrantLock是java中非常重要的一个并发工具,想掌握好ReentrantLock,首选需要掌握好AQS,AQS是Java并发包中众多同步组件的构建基石。 接下来我将详解ReentrantLock的核心实现,我将从ReentrantLock成员结构,再到详细的锁获取细节来详解ReentrantLock,文末有ReentrantLock的大厂面试必考题作业。 为了助大家掌握好ReentrantLock,本节课我重点会讲解以下6点: 1.AQS 2.ReentrantLock简介 3.ReentrantLock的主要成员和结构图 4.ReentrantLock的基本使用 5.ReentrantLock的实现原理 6.ReentrantLock锁源码剖析 目录 AQSAQS全名:AbstractQueuedSynchronizer,是并发容器J.U.C(java.lang.concurrent)下locks包内的一个类,它实现了一个FIFO(FirstIn、FisrtOut先进先出)的队列,底层实现的数据结构是一个双向链表。 AQS定义了一套多线程访问共享资源的同步器框架,在Lock包许多同步类实现都依赖于它,如常用的: 锁(ReentrantLock) 门阀(CountDownLatch) 信号量(Semaphor) 读写锁(ReadWriteLock)这些类里面都维护了一套AQS的子类,都是基于AQS来构建。 所以你想掌握好ReentrantLock,你首先需要打好AQS的基础。详细的AQS介绍(点击查看)。 ReentrantLock简介ReentrantLock重入锁,顾名思义,就是支持重入的锁,它表示能够支持一个线程对资源的重复加锁, 是一个基于AQS( )并发框架的并发控制类。 我们之前学习过Synchronized锁,它也是支持重入的一种锁,参考:Java并发编程系列:深入详解Synchronized同步锁的底层实现 ReentrantLock的主要成员和结构图
|
CopyRight 2018-2019 实验室设备网 版权所有 |